<?php
	session_start();
	class ProgramasManager{

		public static function GetAllWithChilds(){
		
		}

		public static function Add($id_categoria,$nombre, $detalle, $icono, $thumb){
//			echo 'Programas::Add: '.$nombre.'<br>';
			$db = DataBase::getInstance();
			$db->execute("INSERT INTO programas(id_categoria, nombre, icono, thumb, detalle) VALUES (".$id_categoria.",'".$nombre."','". $icono."','".$thumb."','".$detalle."')");
			$last_inserted_id = $db->last_inserted_id();


			$n_icono = FileManager::CopyFile($icono, "dir_prog_".$last_inserted_id);
			$n_thumb = FileManager::CopyFile($thumb, "dir_thprog_".$last_inserted_id);
						
			ProgramasManager::Update($last_inserted_id, $id_categoria,$nombre, $detalle, $n_icono, $n_thumb);

			return self::Get($last_inserted_id);
		}
		
		public static function Update($id, $id_categoria, $nombre,$detalle, $icono,$thumb){
			$db = DataBase::getInstance();

			if($icono != ""){
				$n_icono = FileManager::CopyFile($icono, "dir_prog_".$id);
				$txt_icono = ", icono = '".$n_icono."'";
			}
			if($thumb != ""){
				$n_thumb = FileManager::CopyFile($thumb, "dir_thprog_".$id);
				$txt_thumb= ", thumb = '".$n_thumb."'";
			}

			$txt_icono = ", icono = '".$icono."'";
			$txt_thumb = ", thumb = '".$thumb."'";
			$db->execute("UPDATE programas SET detalle= '".$detalle."', id_categoria=".$id_categoria.",nombre = '".$nombre."' ". $txt_icono ." ".$txt_thumb." where id_programa= ". $id);
		}
		
		public static function GetAll(){
			$db = DataBase::getInstance();
			$db->setQuery("select c.id_categoria id_categoria, c.nombre nombre_categoria, p.id_programa id, p.nombre nombre_programa, p.detalle detalle_programa, p.icono icono_programa, p.thumb thumb_programa from categorias c inner join programas p on c.id_categoria = p.id_categoria");
			$list = $db->loadObjectList();
			return $list;
		}


		public static function GetForXml(){
			$db = DataBase::getInstance();
			$db->setQuery("select id_programa id, id_categoria, detalle, nombre, 
			IF(icono <> '',concat('".getPath()."',icono),icono) icono
			, 			IF(thumb <> '',concat('".getPath()."',thumb),thumb) thumb from programas order by orden asc");
			$list = $db->loadObjectList();
			return $list;
		}

		public static function GetByCategoria($id){
			$db = DataBase::getInstance();
			$db->setQuery("select p.id_programa id, p.nombre nombre, p.detalle detalle from categorias c inner join programas p on p.id_categoria = p.id_categoria
			where p.id_categoria = ". $id);
			$list = $db->loadObjectList();
			return $list;
		}
		
		public static function Get($id){
			$db = DataBase::getInstance();
			$db->setQuery("select c.id_categoria id_categoria, c.nombre nombre_categoria, p.id_programa id, p.nombre nombre_programa, p.detalle detalle_programa, p.icono icono_programa, p.thumb thumb_programa from categorias c inner join programas p on p.id_categoria = c.id_categoria WHERE id_programa = ".$id);
			$list = $db->loadObjectList();
			return $list[0];
		}

		public static function Delete($id){
			$db = DataBase::getInstance();
			$db->execute("DELETE FROM programas WHERE id_programa = ".$id);
		}		

		public static function GetIdByName($id_categoria, $nombre, $detalle, $icono, $thumb){
			if($nombre == "" || $nombre == "x")return 'null';
			$db = DataBase::getInstance();
			$db->setQuery("SELECT id_programa id FROM programas WHERE nombre = '".trim($nombre)."'");
			$list = $db->loadObjectList();
			if(count($list)==0){
				$list = self::Add($id_categoria, trim($nombre), trim($detalle), trim($icono), trim($thumb));
						}else{
				$list = $list[0];
			}
			if($list->id != ""){
				return $list->id;
			}else
				return 'null';
		}

	}
?>